home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / asmutil / uasm.zip / Z8VAL.MAC < prev   
Text File  |  1986-04-06  |  8KB  |  464 lines

  1. *
  2. *       Z8 Validation Suite
  3. *       5 April 1986
  4. *
  5. *
  6. *    condition codes
  7. *
  8. f       equ     0
  9. lt      equ     1
  10. le      equ     2
  11. ule     equ     3
  12. ov      equ     4
  13. mi      equ     5
  14. eq      equ     6
  15. z       equ     6
  16. c       equ     7
  17. ult     equ     7
  18. a       equ     8
  19. ge      equ     9
  20. gt      equ     10
  21. ugt     equ     11
  22. nov     equ     12
  23. pl      equ     13
  24. nz      equ     14
  25. ne      equ     14
  26. nc      equ     15
  27. uge     equ     15
  28.         dseg
  29. *
  30. *    Registers in the Data Segment
  31. *
  32. p0      ds      1
  33. p1      ds      1
  34. p2      ds      1
  35. p3      ds      1
  36. rp4     ds      0
  37. p4      ds      1
  38.         ds      1
  39. rp6     ds      2
  40. rp8     ds      2
  41. *
  42. *
  43. *
  44.         rseg
  45. *
  46. *    Working Registers
  47. *
  48. r0      ds      1
  49. r1      ds      1
  50.  
  51. wp2     ds      0
  52. r2      ds      1
  53. r3      ds      1
  54.  
  55. wp4     ds      0
  56. r4      ds      1
  57. r5      ds      1
  58.  
  59. wp6     ds      0
  60. r6      ds      1
  61. r7      ds      1
  62.  
  63. r8      ds      1
  64. r9      ds      1
  65. r10     ds      1
  66. r11     ds      1
  67. r12     ds      1
  68. r13     ds      1
  69. r14     ds      1
  70. r15     ds      1
  71. *
  72. *
  73. *
  74.         cseg
  75.  
  76. group_0 dec     p0
  77.         dec     r0
  78.         dec     @p1
  79.  
  80.         add     r0,r1
  81.         add     r0,@r1
  82.         add     p0,p1
  83.         add     p0,@p1
  84.         add     p2,#14
  85.         add     @p2,#14
  86.  
  87.         ld      r0,p3
  88.         ld      p3,r0
  89.  
  90.         djnz    r0,group_0
  91.         jr      f,group_0
  92.         jr      group_0
  93.         ld      r0,#0
  94.         jp      f,group_0
  95.         jp      group_0
  96.         inc     r0
  97.         db      0Fx             gap
  98.  
  99.         jr      f,$-7
  100.         jp      f,$-10
  101. *
  102. *    Group_ 1
  103. *
  104. group_1  rlc     p0
  105.         rlc     r0
  106.         rlc     @p1
  107.  
  108.         adc     r0,r1
  109.         adc     r0,@r1
  110.         adc     p0,p1
  111.         adc     p0,@p1
  112.         adc     p2,#14
  113.         adc     @p2,#14
  114.  
  115.         ld      r1,p3
  116.         ld      p3,r1
  117.  
  118.         djnz    r1,group_1
  119.         jr      lt,group_1
  120.         ld      r1,#0
  121.         jp      lt,group_1
  122.         inc     r1
  123.         db      1Fx             gap
  124.  
  125. *
  126. *    Group_ 2
  127. *
  128. group_2  inc     p0
  129.         inc     @p1
  130.  
  131.         sub     r0,r1
  132.         sub     r0,@r1
  133.         sub     p0,p1
  134.         sub     p0,@p1
  135.         sub     p2,#14
  136.         sub     @p2,#14
  137.  
  138.         ld      r2,p3
  139.         ld      p3,r2
  140.  
  141.         djnz    r2,group_2
  142.         jr      le,group_2
  143.         ld      r2,#0
  144.         jp      le,group_2
  145.         inc     r2
  146.         db      2Fx             gap
  147.  
  148. *
  149. *    Group_ 3
  150. *
  151. group_3  jp      @rp4
  152.         srp     #10
  153.  
  154.         sbc     r0,r1
  155.         sbc     r0,@r1
  156.         sbc     p0,p1
  157.         sbc     p0,@p1
  158.         sbc     p2,#14
  159.         sbc     @p2,#14
  160.  
  161.         ld      r3,p3
  162.         ld      p3,r3
  163.  
  164.         djnz    r3,group_3
  165.         jr      ule,group_3
  166.         ld      r3,#0
  167.         jp      ule,group_3
  168.         inc     r3
  169.         db      3Fx             gap
  170.  
  171. *
  172. *    Group_ 4
  173. *
  174. group_4  da      p0
  175.         da      r0
  176.         da      @p1
  177.  
  178.         or      r0,r1
  179.         or      r0,@r1
  180.         or      p0,p1
  181.         or      p0,@p1
  182.         or      p2,#14
  183.         or      @p2,#14
  184.  
  185.         ld      r4,p3
  186.         ld      p3,r4
  187.  
  188.         djnz    r4,group_4
  189.         jr      ov,group_4
  190.         ld      r4,#0
  191.         jp      ov,group_4
  192.         inc     r4
  193.         db      4Fx             gap
  194.  
  195. *
  196. *    Group_ 5
  197. *
  198. group_5  pop     p0
  199.         pop     r0
  200.         pop     @p1
  201.  
  202.         and     r0,r1
  203.         and     r0,@r1
  204.         and     p0,p1
  205.         and     p0,@p1
  206.         and     p2,#14
  207.         and     @p2,#14
  208.  
  209.         ld      r5,p3
  210.         ld      p3,r5
  211.  
  212.         djnz    r5,group_5
  213.         jr      mi,group_5
  214.         ld      r5,#0
  215.         jp      mi,group_5
  216.         inc     r5
  217.         db      5Fx             gap
  218.  
  219. *
  220. *    Group_ 6
  221. *
  222. group_6  com     p0
  223.         com     r0
  224.         com     @p1
  225.  
  226.         tcm     r0,r1
  227.         tcm     r0,@r1
  228.         tcm     p0,p1
  229.         tcm     p0,@p1
  230.         tcm     p2,#14
  231.         tcm     @p2,#14
  232.  
  233.         ld      r6,p3
  234.         ld      p3,r6
  235.  
  236.         djnz    r6,group_6
  237.         jr      z,group_6
  238.         ld      r6,#0
  239.         jp      z,group_6
  240.         inc     r6
  241.         db      6Fx             gap
  242.  
  243. *
  244. *    Group_ 7
  245. *
  246. group_7  push    p0
  247.         push    r0
  248.         push    @p1
  249.  
  250.         tm      r0,r1
  251.         tm      r0,@r1
  252.         tm      p0,p1
  253.         tm      p0,@p1
  254.         tm      p2,#14
  255.         tm      @p2,#14
  256.  
  257.         ld      r7,p3
  258.         ld      p3,r7
  259.  
  260.         djnz    r7,group_7
  261.         jr      c,group_7
  262.         ld      r7,#0
  263.         jp      c,group_7
  264.         inc     r7
  265.         db      7Fx             gap
  266. *
  267. *    Group_ 8
  268. *
  269. group_8  decw    p0
  270.         decw    r0
  271.         decw    @p1
  272. *
  273.         lde     r2,@wp4
  274.         ldei    @r2,@wp4
  275. *
  276.         db      84x,85x,86x,87x
  277. *
  278.         ld      r8,p3
  279.         ld      p3,r8
  280.  
  281.         djnz    r8,group_8
  282.         jr      a,group_8
  283.         ld      r8,#0
  284.         jp      a,group_8
  285.         inc     r8
  286. *
  287.         di
  288. *
  289. *    Group_ 9
  290. *
  291. group_9  rl      p0
  292.         rl      r0
  293.         rl      @p1
  294. *
  295.         lde     @@wp4,r2
  296.         ldei    @@wp4,@r2
  297. *
  298.         db      094x,095x,096x,097x
  299. *
  300.         ld      r9,p3
  301.         ld      p3,r9
  302.  
  303.         djnz    r9,group_9
  304.         jr      ge,group_9
  305.         ld      r9,#0
  306.         jp      ge,group_9
  307.         inc     r9
  308. *
  309.         ei
  310. *
  311. *    Group_ 10
  312. *
  313. group_10 incw    p0
  314.         incw    r0
  315.         incw    @p1
  316. *
  317.         cp      r0,r1
  318.         cp      r0,@r1
  319.         cp      p0,p1
  320.         cp      p0,@p1
  321.         cp      p2,#14
  322.         cp      @p2,#14
  323. *
  324.         ld      r10,p3
  325.         ld      p3,r10
  326.  
  327.         djnz    r10,group_10
  328.         jr      gt,group_10
  329.         ld      r10,#0
  330.         jp      gt,group_10
  331.         inc     r10
  332. *
  333.         ret
  334. *
  335. *    Group_ 11
  336. *
  337. group_11 clr     p0
  338.         clr     r0
  339.         clr     @p1
  340. *
  341.         xor     r0,r1
  342.         xor     r0,@r1
  343.         xor     p0,p1
  344.         xor     p0,@p1
  345.         xor     p2,#14
  346.         xor     @p2,#14
  347. *
  348.         ld      r11,p3
  349.         ld      p3,r11
  350.  
  351.         djnz    r11,group_11
  352.         jr      ugt,group_11
  353.         ld      r11,#0
  354.         jp      ugt,group_11
  355.         inc     r11
  356. *
  357.         iret
  358. *
  359. *    Group_ 12
  360. *
  361. group_12 rrc     p0
  362.         rrc     r0
  363.         rrc     @p1
  364. *
  365.         ldc     r2,@wp4
  366.         ldci    @r2,@wp4
  367. *
  368.         db      0C4x,0C5x,0C6x
  369. *
  370.         ld      r0,p4(r2)
  371. *
  372.         ld      r12,p3
  373.         ld      p3,r12
  374.  
  375.         djnz    r12,group_12
  376.         jr      nov,group_12
  377.         ld      r12,#0
  378.         jp      nov,group_12
  379.         inc     r12
  380. *
  381.         rcf
  382. *
  383. *    Group_ 13
  384. *
  385. group_13 sra     p0
  386.         sra     r0
  387.         sra     @p1
  388. *
  389.         ldc     @@wp4,r2
  390.         ldci    @@wp4,@r2
  391. *
  392.         call    @p2
  393. *
  394.         db      0D5x            gap
  395. *
  396.         call    subr
  397. *
  398.         ld      p4(r2),r0
  399. *
  400.         ld      r13,p3
  401.         ld      p3,r13
  402.  
  403.         djnz    r13,group_13
  404.         jr      pl,group_13
  405.         ld      r13,#0
  406.         jp      pl,group_13
  407.         inc     r13
  408. *
  409.         scf
  410. *
  411. *    Group_ 14
  412. *
  413. group_14 rr      p0
  414.         rr      r0
  415.         rr      @p1
  416. *
  417.         db      0E2x    gap
  418. *
  419.         ld      r0,@r1
  420.         ld      p0,p1
  421.         ld      p0,@p1
  422.         ld      p2,#14
  423.         ld      @p2,#14
  424. *
  425.         ld      r14,p3
  426.         ld      p3,r14
  427.  
  428.         djnz    r14,group_14
  429.         jr      nz,group_14
  430.         ld      r14,#0
  431.         jp      nz,group_14
  432.         inc     r14
  433. *
  434.         ccf
  435. *
  436. *    Group_15
  437. *
  438. group_15 swap    p0
  439.         swap    r0
  440.         swap    @p1
  441. *
  442.         db      0F2x            gap
  443. *
  444.         ld      @r1,r0
  445. *
  446.         db      0F4x
  447. *
  448.         ld      @p1,p0
  449. *
  450.         db      0F6x,0F7x
  451. *
  452.         ld      r15,p3
  453.         ld      p3,r15
  454.  
  455.         djnz    r15,group_15
  456.         jr      nc,group_15
  457.         ld      r15,#0
  458.         jp      nc,group_15
  459.         inc     r15
  460. *
  461. subr    nop
  462.         ret
  463.  
  464.